#include <stdbool.h>


bool isActionCard(enum CARD c);

bool isTreasureCard(enum CARD c);

bool isVictoryCard(enum CARD c);

bool isValidCard(enum CARD c);

bool checkHandsAndDecks(struct gameState *state);

struct gameState* setup (int (*kc)[], int* randomSeed, int* nPlayers );

void  setSupplyCount(enum CARD card, int n, struct gameState *gs);

bool isValidState(struct gameState *gs);

void setHand(int player, int ncards, enum CARD cardsInHand[], struct gameState *gs);

void showHand(int player, struct gameState *gs);

void setDeck(int player, int ncards, enum CARD cardsInDeck[], struct gameState *gs);

void setDiscard(int player, int ncards, enum CARD cardsInDiscard[], struct gameState *gs);

int getScore(int player, struct gameState *gs);

void randCards(struct gameState *gs);

void showDeck(int player, struct gameState *gs);

void showDiscard(int player, struct gameState *gs);

int randomRange(int a, int b);
